package com.jic.market.service.skill;

import com.jic.common.base.vo.Page;
import com.jic.common.base.vo.PageResult;
import com.jic.common.base.vo.RestResult;
import com.jic.market.entity.skill.SkillActivityConfig;
import com.jic.market.request.CouponDetailRequest;
import com.jic.market.request.manager.base.MerchantDeleteRequest;
import com.jic.market.request.manager.base.PromotionIdRequest;
import com.jic.market.request.manager.base.StoreDeleteRequest;
import com.jic.market.request.manager.coupon.CouponTemplatRequest;
import com.jic.market.request.manager.skill.*;
import com.jic.market.response.manager.skill.SkillConfigQueryResponse;
import com.jic.market.response.manager.skill.SkillGoodsQueryResponse;
import com.jic.market.response.manager.skill.SkillMerchantResponse;
import com.jic.market.response.manager.skill.SkillStoreQueryResponse;
import com.jic.market.response.manager.skill.SkillStoreResponse;
import com.jic.market.response.manager.skill.SkillTimeQueryResponse;

import java.util.List;

/**
 * 秒杀基础信息配置表
 *
 * @author : seven
 * @version : v1.0.0
 * @email : 774329481@qq.com
 * @since : 2020-03-12 04:31:17
 */
public interface SkillActivityConfigService {

    long insert(SkillActivityConfig skillActivityConfig);

    long delete(String promotionId);

    long update(SkillActivityConfig skillActivityConfig);

    SkillActivityConfig queryByPrimaryKey(Long id);

    List<SkillActivityConfig> query(SkillActivityConfig skillActivityConfig);

    PageResult<SkillActivityConfig> queryPage(SkillActivityConfig skillActivityConfig, Page pageQuery);

    public RestResult<String> addSkillConfig(SkillConfigAddRequest skillConfigAddRequest);

    public RestResult<SkillConfigQueryResponse> querySkillConfig(PromotionIdRequest promotionIdRequest);

    public RestResult<Boolean> addSkillMerchantConfig(SkillMerchantAddRequest skillMerchantAddRequest);

    public RestResult<SkillMerchantResponse> querySkillMerchant(CouponDetailRequest promotionIdRequest);

    public RestResult<Boolean> addSkillStoreConfig(SkillStoreAddRequest skillStoreAddRequest);

    public RestResult<SkillStoreResponse> querySkillStore(CouponDetailRequest promotionIdRequest);

    public RestResult<SkillTimeQueryResponse> queryTimeOfDate(PromotionIdRequest promotionIdRequest);

    public RestResult<SkillStoreQueryResponse> queryStoreInfo(PromotionIdRequest promotionIdRequest);

    public RestResult<Boolean> addGoodsConfig(SkillGoodsIdsRequest skillGoodsRequest);

    public RestResult<Boolean> deleteGoods(SkillGoodsDeleteRequest skillGoodsDeleteRequest);

    public RestResult<Boolean> deleteBatchGoods(SkillBatchDeleteRequest skillBatchDeleteRequest);

    public RestResult<SkillGoodsQueryResponse> queryGoodsId(SkillDeleteTimeOfDateRequest skillDeleteTimeOfDateRequest);

    public RestResult<PageResult<SkillConfigQueryResponse>> querySkillConfigPage(SkillConfigQueryPageRequest skillConfigQueryPageRequest);

    public RestResult<Boolean> updateSkillConfig(SkillConfigUpdateaRequest skillConfigUpdateaRequest);

    public RestResult<String> copySkillConfig(PromotionIdRequest promotionIdRequest,boolean templateFalg);

    public RestResult<Boolean> colseSkillConfig(PromotionIdRequest promotionIdRequest);

    public RestResult<Boolean> deleteSkillConfig(PromotionIdRequest promotionIdRequest);

    public RestResult<Boolean> deleteSkillMerchant(MerchantDeleteRequest merchantDeleteRequest);

    public RestResult<Boolean> deleteSkillStore(StoreDeleteRequest storeDeleteRequest);

    public RestResult<Boolean> deleteTimeOfDate(SkillDeleteTimeOfDateRequest skillDeleteTimeOfDateRequest);

    public RestResult<Boolean> checkCoupon(SkillCheckRequest skillCheckRequest);

    public RestResult<Boolean> updateImagesUrl(SkillImagesUrlUpdateRequest skillImagesUrlUpdateRequest);

    public RestResult<Boolean> updateGoodsConfig(SkillGoodsRequest skillGoodsRequest);

    public RestResult<List<SkillConfigQueryResponse>> querySkillConfigList(SkillBatchQueryRequest skillBatchQueryRequest);

    public RestResult<String> saveTemplate(CouponTemplatRequest couponTemplatRequest);

    RestResult<Boolean> addAllGoodsConfig(SkillGoodsIdsRequest skillGoodsRequest);
}